package Persistence;

import java.sql.ResultSet;
import java.sql.SQLException;

import Dominion.*;

public class UserDAO extends CrudDAO<User>{

    @Override
    public User create(User usuario) {
        String sqlQuerry = "INSERT INTO User (email, name, second_name, birth_date, city, pass, rol) VALUES ('"
        		+usuario.getEmail()+"','"+usuario.getName()+"','"+usuario.getSecondName()+"','"
        		+usuario.getBirthDate()+"','"+usuario.getCity()+"','"
        		+usuario.getPassword()+"','"+usuario.getRol()+"')";
        try {
			AgenteBD.getDbCon().queryUpdate(sqlQuerry);
		} catch (SQLException e) {
			e.printStackTrace();
		}
        return null;
    }

    @Override
    public void delete(User usuario) {
    	 try {
 			AgenteBD.getDbCon().queryUpdate("DELETE FROM User WHERE email='"+usuario.getEmail()+"'");
 		} catch (SQLException e) {
 			e.printStackTrace();
 		}
    }

    @Override
    public User read(User usuario) throws SQLException {
      ResultSet rs = AgenteBD.getDbCon().query(
                "SELECT * FROM User WHERE email=" + usuario.getEmail()+ "");
        if (rs != null) {
            try {
                while (rs.next()) {
                    usuario.setName(rs.getString("name"));
                    usuario.setSecondName(rs.getString("second_name"));
                    usuario.setBirthDate(rs.getString("birth_date"));
                    usuario.setCity(rs.getString("city"));
					usuario.setPassword(rs.getString("pass"));
					usuario.setRol(rs.getString("rol"));
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        rs.close();
        return usuario;
    }

    @Override
    public void update(User usuario) {
    	 String sqlQuerry="UPDATE User SET name='"+usuario.getName()
		         +"', second_name='" + usuario.getSecondName()
		         +"', birth_date='" +usuario.getBirthDate()
		         +"', city='"+usuario.getCity()
		         +"', pass='"+ usuario.getPassword()
		         +"', rol='"+usuario.getRol()
		         + "' WHERE email='" + usuario.getEmail()+ "'";
		try {
			AgenteBD.getDbCon().queryUpdate(sqlQuerry);
		} catch (SQLException e) {
			e.printStackTrace();
		}       
    }
}
